<%# locals: (user:, placement: "right-start", offset: 16) %>

<div data-testid="user-menu">
  <%= render DS::Menu.new(variant: "avatar", avatar_url: user.profile_image&.variant(:small)&.url, initials: user.initials, placement: placement, offset: offset) do |menu| %>
    <%= menu.with_header do %>
      <div class="px-4 py-3 flex items-center gap-3">
        <div class="w-9 h-9 shrink-0">
          <%= render "settings/user_avatar", avatar_url: user.profile_image&.variant(:small)&.url, initials: user.initials, lazy: true %>
        </div>

        <div class="overflow-hidden text-ellipsis text-sm">
          <p class="font-medium"><%= user.display_name %></p>
          <% if user.display_name != user.email %>
            <p class="text-secondary"><%= user.email %></p>
          <% end %>
        </div>
      </div>

      <% if self_hosted? %>
        <div class="px-4 py-3 border-t border-tertiary">
          <p class="text-sm">
            <span class="font-medium text-primary">Version:</span>
            <%= link_to Maybe.version.to_release_tag, "https://github.com/maybe-finance/maybe/releases/tag/#{Maybe.version.to_release_tag}", target: "_blank", class: "hover:underline" %>

            <% if Maybe.commit_sha.present? %>
              (<%= link_to Maybe.commit_sha.first(7), "https://github.com/maybe-finance/maybe/commit/#{Maybe.commit_sha}", target: "_blank", class: "hover:underline" %>)
            <% end %>
          </p>
        </div>
      <% end %>
    <% end %>

    <% menu.with_item(variant: "link", text: "Settings", icon: "settings", href: settings_profile_path(return_to: request.fullpath)) %>
    <% menu.with_item(variant: "link", text: "Changelog", icon: "box", href: changelog_path) %>

    <% if self_hosted? %>
      <% menu.with_item(variant: "link", text: "Feedback", icon: "megaphone", href: feedback_path) %>
      <% menu.with_item(variant: "link", text: "Contact", icon: "message-square-more", href: "https://link.maybe.co/discord") %>
    <% else %>
      <% menu.with_item(variant: "button", text: "Contact", icon: "message-square-more", data: { action: "intercom#show" }) %>
    <% end %>

    <% menu.with_item(variant: "divider") %>

    <% menu.with_item(variant: "button", text: "Log out", icon: "log-out", href: session_path(Current.session), method: :delete) %>
  <% end %>
</div>
